-- This file is part of funbot.
--
-- Written in 2017 by fr33domlover <fr33domlover@riseup.net>.
--
-- ♡ Copying is an act of love. Please copy, reuse and share.
--
-- The author(s) have dedicated all copyright and related and neighboring
-- rights to this software to the public domain worldwide. This software is
-- distributed without any warranty.
--
-- You should have received a copy of the CC0 Public Domain Dedication along
-- with this software. If not, see
-- <http://creativecommons.org/publicdomain/zero/1.0/>.

-------------------------------------------------------------------------------
-- Meta
-------------------------------------------------------------------------------

SchemaVersion
    number Int

-------------------------------------------------------------------------------
-- The rest
-------------------------------------------------------------------------------

-- | A message left to an offline user, for them to read later.
Memo
    time    UTCTime
    sender  Nickname
    recip   Nickname
    recvIn  Channel    Maybe
    sendIn  Channel    Maybe
    content MsgContent
    ask     Bool

-- | A nickname the bot has seen in a channel.
Kith
    channel  Channel
    nickname Nickname
    spoke    Bool

    UniqueKith channel nickname

-- | A mapping between a label and a location, usually a URL.
GlobalLocation
    label   LocationLabel
    content LocationText

    UniqueGlobalLocation label

-- | A mapping between a label and a location in a specific channel.
LocalLocation
    channel Channel
    label   LocationLabel
    content LocationText

    UniqueLocalLocation channel label

-- | A person in a channel who can welcome and help new people.
Folk
    channel  Channel
    nickname Nickname

    UniqueFolk channel nickname

-- | A special string which the bot can detect and translate into a longer
-- form, e.g. a full URL.
Shortcut
    label  ShortcutLabel
    prefix Text
    before Text
    after  Text

    UniqueShortcut label

ShortcutChannel
    shortcut ShortcutId
    channel  Channel

    UniqueShortcutChannel shortcut channel
